package errmsg

// 状态码
const (
    // 常见错误
    SUCCESS = 200
    ERROR = 500
    DB_ERROR = 507
    VALIDATE_ERROR = 508
    NO_PERMISSION = 509

    // 请求参数错误
    PARAM_ERROR = 1001
    PARAM_FORMAT_ERROR = 1002
    CODE_ERROR = 1003
    TOKEN_IS_EXPIRED = 1004
    GENERATE_TOKEN_ERROR = 1005
    UPLOAD_FAILD = 1006
    PHOTO_FORMAT_ERROR = 1007
    DATA_TYPE_CONV_ERROR = 1008

    // 用户相关
    USER_NOT_EXIST = 2001
    USER_ALREADY_EXIST = 2002
    USER_NAME_ERROR = 2003
    UPDATE_USER_ERROR = 2004
    GET_USER_ERROR = 2005

    // 图片相关
    CREATE_USER_IMAGE_ERROR = 3001
    IMAGE_IS_NOT_EXIST = 3002
    UPDATE_IMAGE_ERROR = 3003
    LIST_IMAGES_ERROR = 3004
    DELETE_IMAGE_ERROR = 3005

    // 文章相关
    CREATE_CHANNEL_ERROR = 4001
    ARTICLE_NOT_EXIST = 4002

    // 文章频道相关
    CREATE_ARTICLE_ERROR = 5002
    LIST_CHANNELS_ERROR = 5003
    DELETE_ARTICLE_ERROR = 5004

    // 评论相关
    CREATE_COMMENT_ERROR = 6001
    UPDATE_COMMENT_STICKY_ERROR = 6002
)

// 错误信息
var CodeMsg = map[int]string{
    SUCCESS: "SUCCESS",
    ERROR: "FAILED",
    DB_ERROR: "服务器数据库异常",
    VALIDATE_ERROR: "数据校验失败",
    NO_PERMISSION: "没有权限",

    PARAM_ERROR: "参数错误",
    PARAM_FORMAT_ERROR: "参数格式错误",
    CODE_ERROR: "验证码错误",
    UPLOAD_FAILD: "上传文件失败",
    PHOTO_FORMAT_ERROR: "图片格式错误, 使用 .jpg .png .jpeg 格式的图片",
    DATA_TYPE_CONV_ERROR: "数据类型转换失败",

    TOKEN_IS_EXPIRED: "token不存在或已过期",
    GENERATE_TOKEN_ERROR: "签发token失败",

    USER_NOT_EXIST: "该用户不存在",
    USER_ALREADY_EXIST: "用户已经存在",
    USER_NAME_ERROR: "用户名必须为 admin",
    UPDATE_USER_ERROR: "更新用户失败",
    GET_USER_ERROR: "查询用户失败",

    CREATE_USER_IMAGE_ERROR: "新增用户图片素材失败",
    IMAGE_IS_NOT_EXIST: "图片不存在",
    UPDATE_IMAGE_ERROR: "更新图片失败",
    LIST_IMAGES_ERROR: "查询用户图片失败",
    DELETE_IMAGE_ERROR: "删除图片失败",

    CREATE_CHANNEL_ERROR: "创建文章频道失败",
    ARTICLE_NOT_EXIST: "该篇文章不存在",

    CREATE_ARTICLE_ERROR: "发布文章失败",
    LIST_CHANNELS_ERROR: "获取文章频道失败",
    DELETE_ARTICLE_ERROR: "删除文章失败",

    CREATE_COMMENT_ERROR: "创建评论失败",
    UPDATE_COMMENT_STICKY_ERROR: "修改评论置顶失败",
}

func GetErrorByCode(code int) string{
    return CodeMsg[code]
}
